|
Ansible : Use Playbook#4
2015/04/22 |
|
To use "notify", "handlers", it's possible to execute a task which is defined in "handlers" after a task completed which has "notify" method.
|
|
| [1] | For example, create a Playbook which sshd is restarted after editing sshd_config. |
|
[cent@dlp ~]$
vi playbook_sample.yml
- hosts: target_servers
become: yes
become_method: sudo
handlers:
- name: restart sshd
service: name=sshd state=restarted
tasks:
- name: edit sshd_config
lineinfile: >
dest=/etc/ssh/sshd_config
regexp="{{ item.regexp }}"
line="{{ item.line }}"
with_items:
- { regexp: '^#PermitRootLogin', line: 'PermitRootLogin no' }
notify: restart sshd
tags: Edit_sshd_config
ansible-playbook playbook_sample.yml --ask-become-pass
SUDO password:
PLAY [target_servers] *********************************************************
GATHERING FACTS ***************************************************************
ok: [10.0.0.51]
ok: [10.0.0.52]
TASK: [edit sshd_config] ******************************************************
changed: [10.0.0.52] => (item={'regexp': '^#PermitRootLogin', 'line': 'PermitRootLogin no'})
changed: [10.0.0.51] => (item={'regexp': '^#PermitRootLogin', 'line': 'PermitRootLogin no'})
NOTIFIED: [restart sshd] ******************************************************
changed: [10.0.0.51]
changed: [10.0.0.52]
PLAY RECAP ********************************************************************
10.0.0.51 : ok=3 changed=2 unreachable=0 failed=0
10.0.0.52 : ok=3 changed=2 unreachable=0 failed=0
# confirm settings [cent@dlp ~]$ ansible target_servers -m command -a "grep '^PermitRootLogin' /etc/ssh/sshd_config" -b --ask-become-pass SUDO password: 10.0.0.51 | success | rc=0 >> PermitRootLogin no 10.0.0.52 | success | rc=0 >> PermitRootLogin no |